using System;

namespace ScrewTurnHelper.Syntax
{
	public class DelphiFormat: CodeFormat
	{
		protected override int TabSize
		{
			get { return 2; }
		}

		public override bool CaseSensitive
		{
			get { return false; }
		}

		protected override string CommentRegEx
		{
			get { return @"\(\*.*?\*\)|//.*?(?=\r|\n)|\{.*?\}"; }
		}

		protected override string StringRegEx
		{
			get { return @"@?""""|@?"".*?(?!\\).""|''|'.*?(?!\\).'"; }
		}

		protected override string Keywords
		{
			get
			{
				return 
					"And Array As Begin Case Class Const Constructor Destructor Div Do DownTo Else End Except File Finally For Function Goto "+
					"If Implementation In Inherited Interface Is Mod Not Object Of On Or Packed Procedure Program Property Raise Record Repeat "+
					"Set Shl Shr Then ThreadVar To Try Type Unit Until Uses Var While With Xor";
			}
		}

		protected override string Preprocessors
		{
			get
			{
				return "";
			}
		}
	}
}